home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0"?>
- <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
- <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
- <!-- $Revision: 1.4.2.7 $ -->
-
- <!--
- Copyright 2002-2004 The Apache Software Foundation
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
- <modulesynopsis metafile="mod_dir.xml.meta">
- <name>mod_dir</name>
- <description>Provides for "trailing slash" redirects and
- serving directory index files</description>
- <status>Base</status>
- <sourcefile>mod_dir.c</sourcefile>
- <identifier>dir_module</identifier>
-
- <summary>
- <p>The index of a directory can come from one of two sources:</p>
-
- <ul>
- <li>A file written by the user, typically called
- <code>index.html</code>. The <directive module="mod_dir"
- >DirectoryIndex</directive> directive sets the
- name of this file. This is controlled by
- <module>mod_dir</module>.</li>
-
- <li>Otherwise, a listing generated by the server. This is
- provided by <module>mod_autoindex</module>.</li>
- </ul>
- <p>The two functions are separated so that you can completely
- remove (or replace) automatic index generation should you want
- to.</p>
-
- <p>A "trailing slash" redirect is issued when the server
- receives a request for a URL
- <code>http://servername/foo/dirname</code> where
- <code>dirname</code> is a directory. Directories require a
- trailing slash, so <module>mod_dir</module> issues a redirect to
- <code>http://servername/foo/dirname/</code>.</p>
- </summary>
-
- <directivesynopsis>
- <name>DirectoryIndex</name>
- <description>List of resources to look for when the client requests
- a directory</description>
- <syntax>DirectoryIndex
- <var>local-url</var> [<var>local-url</var>] ...</syntax>
- <default>DirectoryIndex index.html</default>
- <contextlist><context>server config</context><context>virtual host</context>
- <context>directory</context><context>.htaccess</context></contextlist>
- <override>Indexes</override>
-
- <usage>
- <p>The <directive>DirectoryIndex</directive> directive sets the
- list of resources to look for, when the client requests an index
- of the directory by specifying a / at the end of the directory
- name. <var>Local-url</var> is the (%-encoded) URL of a document on
- the server relative to the requested directory; it is usually the
- name of a file in the directory. Several URLs may be given, in
- which case the server will return the first one that it finds. If
- none of the resources exist and the <code>Indexes</code> option is
- set, the server will generate its own listing of the
- directory.</p>
-
- <example><title>Example</title>
- DirectoryIndex index.html
- </example>
-
- <p>then a request for <code>http://myserver/docs/</code> would
- return <code>http://myserver/docs/index.html</code> if it
- exists, or would list the directory if it did not.</p>
-
- <p>Note that the documents do not need to be relative to the
- directory;</p>
-
- <example>
- DirectoryIndex index.html index.txt /cgi-bin/index.pl
- </example>
-
- <p>would cause the CGI script <code>/cgi-bin/index.pl</code> to be
- executed if neither <code>index.html</code> or <code>index.txt</code>
- existed in a directory.</p>
- </usage>
- </directivesynopsis>
-
- <directivesynopsis>
- <name>DirectorySlash</name>
- <description>Toggle trailing slash redirects on or off</description>
- <syntax>DirectorySlash On|Off</syntax>
- <default>DirectorySlash On</default>
- <contextlist><context>server config</context><context>virtual host</context>
- <context>directory</context><context>.htaccess</context></contextlist>
- <override>Indexes</override>
- <compatibility>Available in version 2.0.51 and later</compatibility>
-
- <usage>
- <p>The <directive>DirectorySlash</directive> directive determines, whether
- <module>mod_dir</module> should fixup URLs pointing to a directory or
- not.</p>
-
- <p>Typically if a user requests a resource without a trailing slash, which
- points to a directory, <module>mod_dir</module> redirects him to the same
- ressource, but <em>with</em> trailing slash for some good reasons:</p>
-
- <ul>
- <li>The user is finally requesting the canonical URL of the resource</li>
- <li><module>mod_autoindex</module> works correctly. Since it doesn't emit
- the path in the link, it would point to the wrong path.</li>
- <li><directive module="mod_dir">DirectoryIndex</directive> will be evaluated
- <em>only</em> for directories requested with trailing slash.</li>
- <li>Relative URL references inside html pages will work correctly.</li>
- </ul>
-
- <p>Well, if you don't want this effect <em>and</em> the reasons above don't
- apply to you, you can turn off the redirect with:</p>
-
- <example>
- # see security warning below!<br />
- <Location /some/path><br />
- <indent>
- DirectorySlash Off<br />
- SetHandler some-handler<br />
- </indent>
- </Location>
- </example>
-
- <note type="warning"><title>Security Warning</title>
- <p>Turning off the trailing slash redirect may result in an information
- disclosure. Consider a situation where <module>mod_autoindex</module> is
- active (<code>Options +Indexes</code>) and <directive module="mod_dir"
- >DirectoryIndex</directive> is set to a valid resource (say,
- <code>index.html</code>) and there's no other special handler defined for
- that URL. In this case a request with a trailing slash would show the
- <code>index.html</code> file. <strong>But a request without trailing slash
- would list the directory contents</strong>.</p>
- </note>
- </usage>
- </directivesynopsis>
-
- </modulesynopsis>
-